home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 2 / Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso / Pearls / dev / GUI / BGUI / demos / font.c < prev    next >
C/C++ Source or Header  |  1994-08-03  |  10KB  |  225 lines

  1. ;/* Execute me to compile with DICE V3.0
  2. dcc font.c -proto -mi -ms -mRR -lbgui
  3. quit
  4. */
  5. /*
  6. **         $RCSfile: font.c,v $
  7. **      Description: Simple demonstration to show how to
  8. **                   create the standard system/gadtools/topaz 8 look
  9. **                   (if you really want to :))
  10. **        Copyright: (C) Copyright 1994 Jaba Development.
  11. **                   (C) Copyright 1994 Jan van den Baard.
  12. **                   All Rights Reserved.
  13. **
  14. **          $Author: jaba $
  15. **        $Revision: 1.3 $
  16. **            $Date: 1994/08/03 11:35:21 $
  17. **/
  18.  
  19. #include <libraries/bgui.h>
  20. #include <libraries/bgui_macros.h>
  21. #include <libraries/gadtools.h>
  22.  
  23. #include <clib/alib_protos.h>
  24.  
  25. #include <proto/exec.h>
  26. #include <proto/bgui.h>
  27. #include <proto/intuition.h>
  28.  
  29. #include <stdio.h>
  30. #include <stdlib.h>
  31.  
  32. /*
  33. **      Library base pointer.
  34. **      NOTE: The intuition.library is opened by DICE
  35. **      it's auto-init code.
  36. **/
  37. struct Library                  *BGUIBase;
  38.  
  39. /*
  40. **      Object ID.
  41. **/
  42. #define ID_QUIT                 1
  43. #define ID_ABOUT                2
  44.  
  45. /*
  46. **      Topaz :(
  47. **/
  48. struct TextAttr Topaz = {
  49.         ( STRPTR )"topaz.font", TOPAZ_EIGHTY, FS_NORMAL, FPF_ROMFONT
  50. };
  51.  
  52. /*
  53. **      Simple menu-strip.
  54. **/
  55. struct NewMenu MenuStrip[] = {
  56.         Title( "Project" ),
  57.                 Item( "Open...", "O", NULL ),
  58.                 Item( "Save As...", "A", NULL ),
  59.                 ItemBar,
  60.                 Item( "About...", "?", ID_ABOUT ),
  61.                 ItemBar,
  62.                 Item( "Quit", "Q", ID_QUIT ),
  63.         Title( "Edit" ),
  64.                 Item( "Reset To Defaults", "D", NULL ),
  65.                 Item( "Last Saved", "L", NULL ),
  66.                 Item( "Restore", "R", NULL ),
  67.         Title( "Settings" ),
  68.                 NM_ITEM, "Create Icons?", "I", CHECKIT, 0, NULL,
  69.         End
  70. };
  71.  
  72. /*
  73. **      Put up a requester.
  74. **/
  75. ULONG Req( struct Window *win, UBYTE *gadgets, UBYTE *body, ... )
  76. {
  77.         struct bguiRequest      req = { NULL };
  78.  
  79.         req.br_GadgetFormat     = gadgets;
  80.         req.br_TextFormat       = body;
  81.         req.br_Flags            = BREQF_CENTERWINDOW|BREQF_LOCKWINDOW;
  82.  
  83.         return( BGUI_RequestA( win, &req, ( ULONG * )(( ULONG * )&body+1 )));
  84. }
  85.  
  86. int main( int argc, char *argv[] )
  87. {
  88.         struct Window           *win;
  89.         Object                  *WO_Window;
  90.         ULONG                    signal = 0, rc, tmp = 0;
  91.         BOOL                     running = TRUE;
  92.  
  93.         /*
  94.         **      Open the library.
  95.         **/
  96.         if ( BGUIBase = OpenLibrary( BGUINAME, BGUIVERSION )) {
  97.                 /*
  98.                 **      Create the window object.
  99.                 **/
  100.                 WO_Window = WindowObject,
  101.                         WINDOW_Title,           "Font Preferences",
  102.                         WINDOW_MenuStrip,       MenuStrip,
  103.                         WINDOW_SizeGadget,      FALSE,
  104.                         WINDOW_CloseGadget,     FALSE,
  105.                         WINDOW_ScaleWidth,      20,
  106.                         WINDOW_Font,            &Topaz,
  107.                         WINDOW_MasterGroup,
  108.                                 VGroupObject, HOffset( 4 ), VOffset( 4 ), Spacing( 4 ),
  109.                                         StartMember,
  110.                                                 InfoObject,
  111.                                                         INFO_TextFormat,        ISEQ_C "Selected Fonts",
  112.                                                         INFO_HorizOffset,       0,
  113.                                                         INFO_VertOffset,        0,
  114.                                                 EndObject,
  115.                                         EndMember,
  116.                                         StartMember,
  117.                                                 HGroupObject, Spacing( 4 ), ButtonFrame, FRM_Flags, FRF_RECESSED,
  118.                                                         StartMember,
  119.                                                                 InfoObject,
  120.                                                                         INFO_TextFormat,        ISEQ_R "Workbench Icon Text:\n"
  121.                                                                                                        "System Default Text:\n"
  122.                                                                                                        "Screen Text:",
  123.                                                                         INFO_FixTextWidth,      TRUE,
  124.                                                                         INFO_MinLines,          3,
  125.                                                                 EndObject,
  126.                                                         EndMember,
  127.                                                         StartMember,
  128.                                                                 InfoObject,
  129.                                                                         INFO_TextFormat,        "topaz 8\n"
  130.                                                                                                 "topaz 8\n"
  131.                                                                                                 "topaz 8",
  132.                                                                         INFO_FixTextWidth,      TRUE,
  133.                                                                         INFO_MinLines,          3,
  134.                                                                         INFO_HorizOffset,       0,
  135.                                                                 EndObject,
  136.                                                         EndMember,
  137.                                                 EndObject,
  138.                                         EndMember,
  139.                                         StartMember,
  140.                                                 Button( "Select Workbench Icon Text...", 0 ),
  141.                                         EndMember,
  142.                                         StartMember,
  143.                                                 Button( "Select System Default Text...", 0 ),
  144.                                         EndMember,
  145.                                         StartMember,
  146.                                                 Button( "Select Screen Text...", 0 ),
  147.                                         EndMember,
  148.                                         StartMember,
  149.                                                 HGroupObject,
  150.                                                         StartMember, Button( "Save", ID_QUIT ), EndMember,
  151.                                                         VarSpace( DEFAULT_WEIGHT ),
  152.                                                         StartMember, Button( "Use", ID_QUIT ), EndMember,
  153.                                                         VarSpace( DEFAULT_WEIGHT ),
  154.                                                         StartMember, Button( "Cancel", ID_QUIT ), EndMember,
  155.                                                 EndObject,
  156.                                         EndMember,
  157.                                 EndObject,
  158.                 EndObject;
  159.  
  160.                 /*
  161.                 **      Object created OK?
  162.                 **/
  163.                 if ( WO_Window ) {
  164.                         /*
  165.                         **      try to open the window.
  166.                         **/
  167.                         if ( win = WindowOpen( WO_Window )) {
  168.                                 /*
  169.                                 **      Obtain it's wait mask.
  170.                                 **/
  171.                                 GetAttr( WINDOW_SigMask, WO_Window, &signal );
  172.                                 /*
  173.                                 **      Event loop...
  174.                                 **/
  175.                                 do {
  176.                                         Wait( signal );
  177.                                         /*
  178.                                         **      Handle events.
  179.                                         **/
  180.                                         while (( rc = HandleEvent( WO_Window )) != WMHI_NOMORE ) {
  181.                                                 /*
  182.                                                 **      Evaluate return code.
  183.                                                 **/
  184.                                                 switch ( rc ) {
  185.  
  186.                                                         case    WMHI_CLOSEWINDOW:
  187.                                                         case    ID_QUIT:
  188.                                                                 running = FALSE;
  189.                                                                 break;
  190.                                                         case    ID_ABOUT:
  191.                                                                 Req( win, "OK", ISEQ_C "This is a demonstration of how to code\n"
  192.                                                                                        "the standard (boring) system/gadtools/topaz/fixed size\n"
  193.                                                                                        "look with BGUI....\nif you " ISEQ_B "really" ISEQ_N " want to ;)" );
  194.                                                                 break;
  195.                                                 }
  196.                                         }
  197.                                 } while ( running );
  198.                         }
  199.                         DisposeObject( WO_Window );
  200.                 } else
  201.                         puts( "Could not create the window object" );
  202.                 CloseLibrary( BGUIBase );
  203.         } else
  204.                 puts( "Unable to open the bgui.library" );
  205.  
  206.         return( 0 );
  207. }
  208.  
  209. #ifdef _DCC
  210. int wbmain( struct WBStartup *wbs )
  211. {
  212.         return( main( 0, NULL ));
  213. }
  214. #endif
  215.  
  216. /*
  217.  *      $Log: font.c,v $
  218.  * Revision 1.3  1994/08/03  11:35:21  jaba
  219.  * Switched from clib/ to proto/.
  220.  *
  221.  * Revision 1.2  1994/07/28  16:51:55  jaba
  222.  * Added a descriptive requester in an About menu item.
  223.  *
  224.  */
  225.